package com.mt.roll.wms.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.mt.roll.core.dal.entity.SysDictData;
import com.mt.roll.core.dal.entity.SysDictType;
import com.mt.roll.core.dto.LoginUser;
import com.mt.roll.core.vo.R;
import com.mt.roll.wms.params.PlatformDictDataParam;
import com.mt.roll.wms.params.PlatformDictDataQueryParam;
import com.mt.roll.wms.params.PlatformDictTypeParam;
import com.mt.roll.wms.params.PlatformDictTypeQueryParam;

import java.util.List;

/**
 * 系统字典管理服务类
 *
 * @author yangyang.jiang
 * @create 2018-11-12 21:01
 **/
public interface PlatformDictService {

    /**
     * 分页查询系统字典类型
     *
     * @param platformDictTypeQueryParams
     * @return
     */
    public R<IPage> selectPlatformDictTypeListByPage(PlatformDictTypeQueryParam platformDictTypeQueryParams);


    /**
     * 保存字典类型信息
     *
     * @param platformDictTypeParams
     * @param loginUser
     * @return
     */
    public R<Object> savePlatformDictType(PlatformDictTypeParam platformDictTypeParams, LoginUser loginUser);


    /**
     * 根据id查询字典类型
     *
     * @param dictTypeId
     * @return
     */
    public R<SysDictType> selectDictTypeById(Long dictTypeId);


    /**
     * 修改字典类型
     *
     * @param platformDictTypeParams
     * @return
     */
    public R<Object> updatePlatformDictType(PlatformDictTypeParam platformDictTypeParams, LoginUser loginUser);

    /**
     * 删除字典类型
     *
     * @param dictTypeId
     * @return
     */
    public R<Object> deletePlatformDictType(Long dictTypeId);

    /**
     * 分页查询系统字典
     *
     * @param platformDictDataQueryParams
     * @return
     */
    public R<IPage> selectPlatformDictDataListByPage(PlatformDictDataQueryParam platformDictDataQueryParams);

    /**
     * 保存数据字典
     *
     * @param platformDictDataParams
     * @return
     */
    public R<Object> savePlatformDictData(PlatformDictDataParam platformDictDataParams, LoginUser loginUser);

    /**
     * 修改数据字典
     *
     * @param platformDictDataParams
     * @param loginUser
     * @return
     */
    public R<Object> updatePlatformDictData(PlatformDictDataParam platformDictDataParams, LoginUser loginUser);

    /**
     * 根据id查询数据字典
     *
     * @param dictId
     * @return
     */
    public R<SysDictData> selectPlatformDictDataById(Long dictId);

    /**
     * 删除数据字典
     *
     * @param dictId
     * @return
     */
    public R<Object> deletePlatformDictData(Long dictId);

    /**
     * 查询字典类型列表
     * @return
     */
    public R<List<SysDictType>>selectDictTypeByList();
}
